The worldwide packet-based data communications network now commonly referred to as the “Internet” has experienced extraordinary growth and acceptance. The Internet provides access to many different types of information and data including electronic documents, music data files, e.g., MPEG Layer three (MP3) files, and video data files. With access to over several hundred million electronic documents, the Internet is arguably the largest single source of information in the world. As used herein, the term “electronic document” refers to any type of data or information in electronic form. Examples of electronic documents include, without limitation, text documents and web pages.
One of the great opportunities afforded by the Internet is the ability to purchase online a plethora of electronic products, such as music data files, video data files and computer software. Electronic products are sometimes provided to customers using an approach referred to generally as “caching.” Caching generally refers to storing, at one or more locations other than a source location, copies of electronic products stored at the source location. Rather than processing every request for an electronic product by transmitting the product from the source location, requests may be processed by transmitting the electronic product from one of the other locations.
Caching has the benefit of reducing the workload of the source location and, in many cases, of providing the electronic product faster than it could be provided from the source location. For example, the location from which the electronic product is provided may be a location that is local to the customer, such as storage maintained by the Internet access provider used by the customer. Consider the following example in the context of the Internet.
FIG. 1 is a block diagram of a conventional arrangement 100 for providing Internet content, such as electronic products, to a user. A user 102 (customer) uses a tool, such as a Web browser executing on a computer, to connect to an access provider 104, for example an Internet Service Provider (ISP), via a communications link 106. An example of access provider 104 is the Internet dial-up service provided by America Online. Communications link 106 may be any medium that allows data to be exchanged between user 102 and access provider 104. Examples of communications link 106 include, without limitation, a dial up connection, a cable modem connection, a Digital Subscriber Line (DSL) connection and a wireless connection.
Access provider 104 is communicatively coupled to the Internet 108 via a communications link 110. Communications link 110 may be any medium that allows data to be exchanged between access provider 104 and Internet 108 and is often a broadband connection. Note that from the perspective of user 102, Access provider 104 and communications link 110 may be part of Internet 108, but are illustrated separately for purposes of explanation.
Content providers 112, 114, 116 are communicatively coupled to Internet 108 via communications links 118, 120, 122, respectively, and provide content to user 102. Typically, user 102 views web pages hosted by content providers 112, 114 and 116 and requests particular information and electronic products, such as music and videos, by selecting icons or links embedded in those web pages.
The requests go to access provider 104. In response to the requests, access provider 104 determines whether the electronic products are stored or “cached” at access provider 104. If the requested electronic products are not stored at access provider 104, access provider 104 requests the electronic products from content providers 112, 114, 116 over communications link 110, Internet 108 and communications links 118, 120, 122. Content providers 112, 114, 116 provide the requested electronic products to access provider 104 over communications links 118, 120, 122, Internet 108 and communications link 110. The electronic products are then stored or “cached” at access provider 104. Access provider 104 then provides the electronic products to user 102.
Thereafter, when any user connected to the Internet through access provider 104 requests the electronic products, the electronic products are provided to users 102 from the cache of access provider 104, rather than being retrieved from content providers 112, 114, 116.
Electronic products maintained locally, i.e., “cached”, by access provider 104 are updated or refreshed from content providers 112, 114, 116 based upon a combination of subsequent user requests for the electronic products and a particular heuristic or algorithm used by the access provider to determine when to refresh the electronic products. For example, suppose that content provider 112 provides a particular electronic document. When user 102 first requests the particular electronic product, access provider 104 retrieves the particular electronic product from content provider 112, provides the particular electronic product to user 102, and stores the particular electronic product in a cache of access provider 104.
Some time later, another user (or user 102) requests from access provider 104 the same particular electronic product. In response to the request, access provider 104 applies a particular heuristic to determine whether the copy of the particular electronic product stored in the cache of access provider 104 should be provided to the other user, or whether a new copy of the particular electronic product should be retrieved from content provider 112 and provided to the other user. For example, access provider 104 may determine whether the cached copy of the particular electronic product is sufficiently new. If the cached copy of the particular electronic product is determined, based upon the heuristic, to be sufficiently new, then the copy of particular electronic product stored in the cache of access provider 104 is provided to the other user. If, however, based upon the heuristic, the cached copy of the particular electronic product is too old, then a new copy of the particular electronic product is retrieved from content provider 112.
One of the benefits afforded by the cache approach is that electronic products can generally be provided to user 102 from access provider 104 much faster than from content providers 112, 114, 116. Thus, the time required to provide electronic products to user 102 is not adversely affected by data transmission latencies in Internet 108 and communications links 110, 118, 120, 122 or the response time of content providers 112, 114, 116. The cache approach also reduces the amount of the load on content providers 112, 114, 116 since many requests are processed only by access provider 104 and not by content providers 112, 114, 116.
One problem with the caching approach is that content providers 112, 114, 116 do not know when particular content has been provided to user 102, since the content was not provided to the user directly from them. Thus, content providers do not necessarily know when orders for content have been successfully fulfilled. This information is important because it allows content providers to better manage their content.
Another problem with the caching approach is the inconvenience of the process from the customer perspective. Conventional approaches for purchasing electronic products over the Internet are often very cumbersome by requiring customers to separately pay for and then download the digital product. For example, to purchase an electronic product, such as a technical paper, customers are required to first complete a financial transaction and then separately download the software from the merchant. This approach can be very cumbersome and requires the customer to perform two separate activities. In addition, the processing of payment is not contingent upon a successful download. Thus, customers are sometimes charged for digital products that the customers were unable to completely download, for example because of a transmission error.
Based upon the increased use of caches to provide electronic products to customers and limitations in prior caching approaches, an approach for caching electronic products that does not suffer from limitations in prior approaches is highly desirable.